package com.arpa.wms.service;

import com.arpa.wms.domain.dto.SupplierDTO;
import com.arpa.wms.domain.dto.SupplierFormDTO;
import com.arpa.wms.domain.entity.Supplier;
import com.arpa.wms.domain.vo.SupplierVO;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 供应商 服务类
 * </p>
 *
 * @author LEO
 * @since 2020-09-04
 */
public interface ISupplierService extends IService<Supplier> {

    /**
     * 保存
     * @param entity
     * @return
     */
    @Override
    boolean save(Supplier entity);


    /**
     * 保存
     * @param entity
     * @return
     */
    boolean save(SupplierFormDTO entity);

    /**
     * 根据code更新实体
     * @param entity
     * @return
     */
    int updateByCode(Supplier entity);
    /**
     * 根据code更新实体
     * @param entity
     * @return
     */
    int updateByCode(SupplierFormDTO entity);





    /**
     * 查询列表
     * @param supplierDTO
     * @return
     */
    List<SupplierVO> queryList(SupplierDTO supplierDTO);
     /**
      *  @author: Allen chen
      *  @Date: 2020/9/8 14:39
      *  @Description: 根据供应商名称和编号查询
      */
    List<SupplierVO> queryByNameOrCode(SupplierDTO supplierDTO);

    /**
     * 查询合计,包含总数
     * @param supplierDTO
     * @return
     */
    SupplierVO queryListSum(SupplierDTO supplierDTO);

    /**
     *  @author: Allen chen
     *  @Date: 2020/9/5 14:30
     *  @Description: 批量删除
     */
    int batchDelete(List<String> codes,String modifiedBy);

    /**
     * 模糊查询供应商
     * @param keywords 关键字
     * @return
     */
    List<Map<String, Object>> search(String keywords);

    /**
     * 通过code查询供应商信息
     * 使用缓存查询
     * @param code
     * @return
     */
    SupplierVO getOneInfo(String code);
}
